Newer
Older
pixi.js / examples / example 3 - MovieClip / index.html
@Mat Groves Mat Groves on 22 May 2013 4 KB RenderTexture update
<!DOCTYPE HTML>
<html>
<head>
	<title>pixi.js example 10 using a movieclip</title>
	<style>
		body {
			margin: 0;
			padding: 0;
			background-color: #000000;
		}
	</style>
	<script src="pixi.js"></script>
	<script src="../../src/pixi/DisplayObjectContainer.js"></script>
	<script src="../../src/pixi/renderers/WebGLRenderGroup.js"></script>
	<script src="../../src/pixi/renderers/WebGLRenderer.js"></script>
	<script src="../../src/pixi/textures/RenderTexture.js"></script>
	<script src="../../src/pixi/renderers/WebGLBatch.js"></script>
	<script src="../../src/pixi/renderers/CanvasRenderer.js"></script>
	
</head>
<body>
	<script>

	// create an array of assets to load
	var assetsToLoader = [ "SpriteSheet.json"];
	
	// create a new loader
	loader = new PIXI.AssetLoader(assetsToLoader);
	
	// use callback
	loader.onComplete = onAssetsLoaded
	
	//begin load
	loader.load();
	
	
	// holder to store aliens
	var explosions = [];
	
	var count = 0;
		
	// create an new instance of a pixi stage
	var stage = new PIXI.Stage(0xFFF0FF, true);;
	
	// create a renderer instance.
	renderer = PIXI.autoDetectRenderer(800, 600);
		
	// add the renderer view element to the DOM
	document.body.appendChild(renderer.view);
	
	// DOOMP
	var renderTexture = new PIXI.RenderTexture(256, 256)/////* 2, 128 * 2);
	var sprite = new PIXI.Sprite(renderTexture);
	
	var renderTexture2 = new PIXI.RenderTexture(256, 256)/////* 2, 128 * 2);
	var sprite2 = new PIXI.Sprite(renderTexture2);
	//sprite.anchor.x = 0.5;
	//sprite.anchor.y = 0.5;
	//sprite.scale.y = .5;
//	sprite.position.x = 300;
//	sprite.position.y = 200;
	var bg = PIXI.Sprite.fromImage("button_test_BG.png");
	stage.addChild(bg)
	var container = new PIXI.DisplayObjectContainer();
	var container2 = new PIXI.DisplayObjectContainer();
	
	stage.addChild(container);
	container.addChild(container2);
	//
	
	stage.addChild(sprite2);
	function onAssetsLoaded()
	{
		// create an array to store the textures
		var explosionTextures = [];
		
		for (var i=0; i < 26; i++) 
		{
		 	var texture = PIXI.Texture.fromFrame("Explosion_Sequence_A " + (i+1) + ".png");
		 	explosionTextures.push(texture);
		};
		
	//	explosionTextures.push(PIXI.Texture.fromImage("button_test_BG.png"));
		
		// create a texture from an image path
		// add a bunch of aliens
		for (var i = 0; i < 150; i++) 
		{
			// create an explosion MovieClip
			var explosion = new PIXI.MovieClip(explosionTextures);
			
			//if(i % 2)
			{
				explosion = new PIXI.MovieClip([PIXI.Texture.fromImage("button_test_BG.png")]);
				container2.addChild(explosion);
			}
		//	else
			{
			//	container.addChild(explosion);
			}
			
			explosion.position.x =  Math.random() * 800;
			explosion.position.y =Math.random() * 600;
		//	explosion.anchor.x = 0.5;
			//explosion.anchor.y = 0.5;
//			670 × 432
		//		explosion.pivot.x = 670/2;
			explosion.pivot.y = 432/2;
			
			//explosion.rotation = Math.random() * Math.PI;
			explosion.scale.x = explosion.scale.y = 1//0.3//0.75 + Math.random() * 0.5
			explosion.animationSpeed = 0.1
			explosion.gotoAndPlay(Math.random() * 27);
			
			
			explosion.buttonMode = true;
		
			// TODO BUG>??
			explosion.setInteractive(true);
			
			explosion.click = function(){
				
			//	console.log("REMOVEIN!")
				//this.visible = false;
				this.rotation += Math.PI/10
			//	this.parent.removeChild(this);
			}
		}
		
		//∆∆container2.addChild();
		
		stage.addChild(sprite);
		sprite.alpha = 1
		sprite.position.x = 300;
		sprite.position.y = 300;
		// start animating
		requestAnimFrame( animate );
		//container.alpha = 0.5
		
	}	
	bloop= true;
	
	function animate() {
		
		//sprite.rotation += 0.01;
	//	console.log(stage.children)
		
	    requestAnimFrame( animate );
		//stage.children[2]);
	    renderer.render(stage);
	   
	 	// if(count < 100)
		{ 
		    bloop = !bloop;
		    
		    if(bloop )
		    {
		    //	container.visible = false;
				
		    }
			else
			{
			//	container.visible = true;
				
				renderTexture2.render(bg, true);
			}
		
		}
		count++;
	
		if(count == 100)
		{
			// alert("!")
		//	stage.removeChild(container);
		//	renderTexture.render(container, true);
		//}
	//	else if(count > 200)
		//{
		}
		
		if(count == 200)
		{
			//
		//	stage.addChild(container);
			//container.removeChild(container2);
		}
		
		if(count > 300)
		{
		//	renderTexture2.render(container, true);
			//sprite2.scale.x = 10
		//	renderTexture.render(container, true);
		}
		else
		{
			renderTexture2.render(container, true);
		}
		//	container.visible = false;
	}
	
	count = 0;
	</script>

	</body>
</html>